package com.i2863.receipt.service;

import com.i2863.receipt.entity.Prize;

import java.util.List;

/**
 * Created by Administrator on 2018/6/8.
 */
public interface PrizeService {

    /**
     * id查询
     * @param id
     * @return
     */
    Prize findOne(Integer id);

    /**
     * 添加
     * @param prize
     */
    void add(Prize prize);

    /**
     * 删除
     * @param id
     */
    void del(Integer id);

    /**
     * 更新一条记录
     * @param prize
     */
    void update(Prize prize);

    /**
     * 查询站点下所有的奖项
     * @param siteId
     * @return
     */
    List<Prize> findBySiteId(Integer siteId);

    /**
     * 获取奖项总人数
     * @param siteId  站点id
     * @param level  奖项
     * @param prizeRange 范围
     * @return  奖项总人数
     */
    Integer sumBySiteIdAndLevel(Integer siteId,Integer level,Integer prizeRange);

    /**
     * 查询站点抽奖活动指定范围和等级的奖项
     * @param siteId  站点id
     * @param prizeRange 奖项范围
     * @param level 等级
     * @return 活动指定等级的所有奖项
     */
    List<Prize> findBySiteIdAndPrizeRangeAndLevel(Integer siteId, Integer prizeRange, Integer level);

    /**
     * 查询站点抽奖活动的所有奖项内容
     * @param siteId   站点id
     * @param prizeRange  抽奖范围,场内还是复活
     * @return 站点下指定范围的奖项内容
     */
    List<Prize> findBySiteIdAndPrizeRange(Integer siteId,Integer  prizeRange);

    /**
     *统计某一奖品等级下的奖项数量
     * @param level  等级
     * @param siteId 站点id
     * @return  奖品数量
     */
    Integer countLevelPrizeBySiteId(Integer level,Integer siteId);

    /**
     * 按奖品等级分组
     * @param siteId
     * @return
     */
    List<Prize> groupPrizeByLevel(Integer siteId);


}
